import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_syt/generated/assets.dart';
import 'package:flutter_syt/widgets/auto_image.dart';
import 'package:gif_view/gif_view.dart';
import 'package:flutter_syt/datas/provider_index_setting.dart';
import 'package:flutter_syt/domain/widgets/simple_image_loader.dart';
import 'package:flutter_syt/domain/widgets/stupid_title_bar.dart';
import 'package:flutter_syt/routes.all.dart';
import 'package:flutter_syt/utils/click_utils.dart';
import 'package:flutter_syt/utils/utils_other.dart';
import 'package:provider/provider.dart';
import 'package:yyy_route_annotation/yyy_route_annotation.dart';

class HomeTitleBar extends StatelessWidget {
  const HomeTitleBar(
      {super.key,
        this.weatherEntity,

        this.showSearch = false,
      this.showQr = false,
      this.showSeating = false});

  final bool showSearch;
  final bool showQr;
  final bool showSeating;
  final StupidTitleBarEntity? weatherEntity;

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 44 + ScreenUtil().statusBarHeight,
      padding: EdgeInsets.only(
          top: ScreenUtil().statusBarHeight, left: 20.w, right: 10.w),
//         width: 1.sw,,
      child: Row(
        children: [
          AutoImage(
            Assets.appBarLogo,
            height: 26.w,
          ),
          _weather(),
          const Spacer(),
          Visibility(
              visible: showSearch,
              child: GestureDetector(
                onTap: () {
                  RouteManager.push(context, RoutMapping.search(false));
                },
                behavior: HitTestBehavior.opaque,
                child: SizedBox(
                  width: 40,
                  height: 40,
                  child: Center(
                    child: AutoImage(
                      Assets.iconSearchBlack,
                      width: 20.w,
                    ),
                  ),
                ),
              )),
          Visibility(
              visible: showQr,
              child: GestureDetector(
                onTap: () {
                  UtilsOther.scanVenue(context);
                },
                behavior: HitTestBehavior.opaque,
                child: SizedBox(
                  width: 40,
                  height: 40,
                  child: Center(
                    child: AutoImage(
                      Assets.iconTitileQr,
                      width: 20.w,
                    ),
                  ),
                ),
              )),
          Visibility(
              visible: showSeating,
              child: GestureDetector(
                onTap: () {},
                behavior: HitTestBehavior.opaque,
                child: SizedBox(
                  width: 40,
                  height: 40,
                  child: Center(
                    child: AutoImage(
                      Assets.iconSetting,
                      width: 20.w,
                    ),
                  ),
                ),
              ))
        ],
      ),
    );
  }
  Widget _weather() {
    if (weatherEntity == null) {
      return const SizedBox();
    }
    return Row(
      children: [
        Container(
          width: 32,
          height: 32,
          alignment: Alignment.center,
          margin:const EdgeInsets.only(left: 12),
          child: ImageLoader.loadImage(
            imageUrl: weatherEntity!.weatherIconUrl,
            color:Color(0xff111111),
          ),
        ),
        Container(
            margin:const EdgeInsets.only(left: 8),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  '${weatherEntity!.temperature}°C',
                  style: const TextStyle(
                    fontSize: 16,
                    color: Color(0xff111111),
                    fontWeight: FontWeight.bold,
                  ),
                ),
                Text(
                  weatherEntity!.position,
                  style:const TextStyle(
                    fontSize: 12,
                    fontWeight: FontWeight.bold,
                    color: Color(0xff111111),
                  ),
                ),
              ],
            )),
        // Container(
        //   margin: EdgeInsets.only(left: 6),
        //   child: Text(
        //     widget.weatherInfo!.position,
        //     style: TextStyle(
        //       fontSize: 12,
        //       color: Colors.black,
        //     ),
        //   ),
        // )
      ],
    );
  }

}

//
// class HomeTitleBar extends StatefulWidget {
//   final StupidTitleBarEntity? weatherInfo;
//   // final BarType type;
//   // final bool isShowWeather;
//   // final String? title;
//   // final bool isShowQr;
//   // final bool isShowService;
//   // final bool isCompetitions;
//
//   HomeTitleBar(
//     this.weatherInfo,
//   );
//
//   @override
//   State<StatefulWidget> createState() => _CHomeTitleBarState();
// }
//
// class _CHomeTitleBarState extends State<HomeTitleBar> {
//   // List<String> qrWhiteList = [];
//   late GifController controller;
//   // late GifController controller2;
//   int playCount = 0;
//
//   @override
//   void initState() {
//     super.initState();
//     controller = GifController(
//       loop: false,
//       onFrame: (value) async {
//         // DLog(value);
//         if (value == 200) {
//           playCount++;
//           controller.pause();
//         }
//       },
//       onFinish: () {
//         // if (playCount < 4) {
//         //   controller.play();
//         //   playCount++;
//         // } else {
//         //   controller.stop();
//         // }
//       },
//     );
//
//     // controller2 = GifController(
//     //   loop: false,
//     //   onFrame: (value) async {
//     //     DLog(value);
//     //   },
//     //   onFinish: () {
//     //     if (playCount < 4) {
//     //       controller.play();
//     //       playCount++;
//     //     } else {
//     //       controller.stop();
//     //     }
//     //   },
//     // );
//     // controller2.stop();
//   }
//
//   @override
//   void dispose() {
//     // TODO: implement dispose
//     super.dispose();
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     // setState(() {
//     //
//     // });
//
//
//     return Container(
//         // padding: EdgeInsets.only(top: ScreenUtil().statusBarHeight),
//         height: 44 + 20.w + ScreenUtil().statusBarHeight,
//         width: 1.sw,
//         // decoration: BoxDecoration(
//         //     image: DecorationImage(
//         //   image: AssetImage(
//         //     'assets/images/image_home_new_bg.png',
//         //   ),
//         //   fit: BoxFit.fill,
//         // )),
//         child: Stack(
//           children: [
//             Positioned(
//               left: 0,
//               right: 0,
//               bottom: -1,
//               child: Column(
//                 mainAxisAlignment: MainAxisAlignment.end,
//                 children: [
//                   SizedBox(height: 44, child: _buildButtons()),
//                   SizedBox(
//                     height: 10.w,
//                   ),
//                   Container(
//                     height: 10.w,
//                     decoration: BoxDecoration(
//                         color: Colors.white,
//                         borderRadius: BorderRadius.only(
//                             topLeft: Radius.circular(20),
//                             topRight: Radius.circular(20))),
//                   )
//                 ],
//               ),
//             ),
//             Positioned(
//                 right: 88,
//                 bottom: 4.w,
//                 child: GifView.asset(
//                   'assets/home_cd_1.gif',
//                   // playCount == 0
//                   //     ? 'assets/home_cd_1.gif'
//                   //     : 'assets/home_cd_2.gif',
//                   width: 77.w,
//                   controller: controller,
//                   withOpacityAnimation: false,
//                   // fadeDuration: Duration.zero,
//                   // filterQuality: FilterQuality.high,
//                 )),
//             // Positioned(
//             //     right: 88,
//             //     bottom: 4.w,
//             //     child: Visibility(
//             //         visible: playCount > 0,
//             //         child: GifView.asset(
//             //           'assets/home_cd_2.gif',
//             //           // playCount == 0
//             //           //     ? 'assets/home_cd_1.gif'
//             //           //     : 'assets/home_cd_2.gif',
//             //           width: 77.w,
//             //           controller: controller2,
//             //           withOpacityAnimation: false,
//             //           // fadeDuration: Duration.zero,
//             //           // filterQuality: FilterQuality.high,
//             //         )))
//           ],
//         ));
//   }
//   Widget _logo() {
//     return Container(
//       width: 40,
//       height: 40,
//       child: Image.asset(
//         "assets/icons/icon_login_colors.png",
//         width: 40,
//         height: 40,
//       ),
//     );
//   }
//
//   Widget _weather() {
//     return Row(
//       children: [
//         Container(
//           width: 32,
//           height: 32,
//           alignment: Alignment.center,
//           margin: EdgeInsets.only(left: 12),
//           child: ImageLoader.loadImage(
//             imageUrl: widget.weatherInfo!.weatherIconUrl,
//           ),
//         ),
//         Container(
//             margin: EdgeInsets.only(left: 8),
//             child: Column(
//               mainAxisAlignment: MainAxisAlignment.center,
//               crossAxisAlignment: CrossAxisAlignment.start,
//               children: [
//                 Text(
//                   '${widget.weatherInfo!.temperature}°C',
//                   style: TextStyle(
//                     fontSize: 16,
//                     color: Color(0xff111111),
//                     fontWeight: FontWeight.bold,
//                   ),
//                 ),
//                 Text(
//                   widget.weatherInfo!.position,
//                   style: TextStyle(
//                     fontSize: 12,
//                     fontWeight: FontWeight.bold,
//                     color: Color(0xff111111),
//                   ),
//                 ),
//               ],
//             )),
//         // Container(
//         //   margin: EdgeInsets.only(left: 6),
//         //   child: Text(
//         //     widget.weatherInfo!.position,
//         //     style: TextStyle(
//         //       fontSize: 12,
//         //       color: Colors.black,
//         //     ),
//         //   ),
//         // )
//       ],
//     );
//   }
//
//   Widget _search() {
//     return Container(
//       margin: EdgeInsets.only(left: 6),
//       width: 35,
//       height: 35,
//       // color: Colors.red,
//       child: Center(
//           child: Image.asset(
//             'assets/icons/icon_search_black.png',
//             width: 20,
//             height: 20,
//           )),
//     );
//   }
//
//
//   Widget _buildButtons() {
//     return Row(
//       children: [
//         SizedBox(
//           width: 15,
//         ),
//         _logo(),
//         if (widget.weatherInfo != null) _weather(),
//         Spacer(),
//
//
//
//         GestureDetector(
//           behavior: HitTestBehavior.opaque,
//           onTap: ClickUtils.debounce(() {
//             RouteManager.push(context, RoutMapping.search(false));
//           }),
//           child: _search(),
//         ),
//
//         Consumer<ProviderIndexSetting>(builder: (context, value, child) {
//           return Visibility(
//               visible: value.indexSetting.scan == 1,
//               child: GestureDetector(
//                 behavior: HitTestBehavior.opaque,
//                 onTap: ClickUtils.debounce(() async {
//                   UtilsOther.scanVenue(context);
//                 }),
//                 child: Container(
//                   width: 44,
//                   height: 35,
//                   child: Center(
//                     child: Image.asset(
//                       'assets/images/icon_titile_qr.png',
//                       width: 20,
//                       height: 20,
//                       color: Colors.black,
//                     ),
//                   ),
//                 ),
//               ));
//         }),
//         SizedBox(
//           width: 4,
//         )
//       ],
//     );
//   }
//
//   // static Widget anmiationView = Image.asset(
//   //   'assets/home_cd.gif',
//   //   width: 77,
//   // );
//
// }
